/**
 * 战术装备相关API
 */
import { apiClient } from './index'
import type { ApiResponse } from './types/common'
import type { TacticalLoadoutResponse, TacticalFilter } from '@/types/tactical'

// 战术装备API端点
export const TACTICAL_API = {
  GET_LOADOUTS: '/tacticalLoadouts/index',
  GET_MAPS: '/tacticalLoadouts/maps',
  GET_LEVELS: '/tacticalLoadouts/levels',
  DEBUG: '/tacticalLoadouts/debug',
  TEST_KEY: '/tacticalLoadouts/testKey'
}

/**
 * 获取战术装备列表
 * @param params 筛选参数
 */
export function getTacticalLoadouts(params: Partial<TacticalFilter> = {}): Promise<ApiResponse<TacticalLoadoutResponse[]>> {
  return apiClient.post<TacticalLoadoutResponse[]>(TACTICAL_API.GET_LOADOUTS, params)
}

/**
 * 获取地图列表
 */
export function getTacticalMaps(): Promise<ApiResponse<string[]>> {
  return apiClient.post<string[]>(TACTICAL_API.GET_MAPS, {})
}

/**
 * 获取指定地图的等级列表
 * @param mapId 地图ID
 */
export function getTacticalLevels(mapId: string): Promise<ApiResponse<string[]>> {
  return apiClient.post<string[]>(TACTICAL_API.GET_LEVELS, { map_id: mapId })
}

/**
 * 调试接口
 */
export function getTacticalDebug(): Promise<ApiResponse<any>> {
  return apiClient.post<any>(TACTICAL_API.DEBUG, {})
}

/**
 * 测试特定键
 * @param key Redis键名
 */
export function testTacticalKey(key: string): Promise<ApiResponse<any>> {
  return apiClient.post<any>(TACTICAL_API.TEST_KEY, { key })
}